package com.cjc.express.utils;



import com.cjc.express.entity.Price;

import java.util.List;

/**
 * @author hjj
 * @创建时间 2018年1月20日12:32:27
 * @描述 导入excel表常用的功能
 */
public class ExcelImportUtils {

    // @描述：是否是2003的excel，返回true是2003
    public static boolean isExcel2003(String filePath) {
        return filePath.matches("^.+\\.(?i)(xls)$");
    }

    //@描述：是否是2007的excel，返回true是2007
    public static boolean isExcel2007(String filePath) {
        return filePath.matches("^.+\\.(?i)(xlsx)$");
    }

    /**
     * 验证EXCEL文件
     *
     * @param filePath
     * @return
     */
    public static boolean validateExcel(String filePath) {
        if (filePath == null || !(isExcel2003(filePath) || isExcel2007(filePath))) {
            return false;
        }
        return true;
    }

    /**
     * @param str
     * @return false 不是数
     * @创建时间 2018年1月20日
     * @描述 正则表达式，判断一个字符是否为一个数, 是返回true,否则返回false
     * @author hjj
     */
    public static boolean isNumeric(String str) {
        String reg = "^[0-9]*";
        return str.matches(reg);
    }

    /**
     * @param string
     * @return stringnew
     * @创建时间 2018年1月21日
     * @描述 提取字符串中的数字
     * @author dyp
     */
    public static String getNumber(String string) {
        String stringnew = "";
        string.trim();
        if (null != string && string.length() > 0) {
            for (int i = 0; i < string.length(); i++) {
                if (string.charAt(i) >= 48 && string.charAt(i) <= 57) {
                    stringnew += string.charAt(i);
                }
            }
        }
        return stringnew;
    }

    public static String checkExcell(List<Price> prices) {

        String msg = "";

        if (prices.size() == 0 || prices.size() == 1) return msg;

        for (int i = 0; i < prices.size() - 1; i++) {
            Price price1 = prices.get(i);
            for (int j = i + 1; j < prices.size(); j++) {
                Price price2 = prices.get(j);
                if (price1.getCompanyname().equals(price2.getCompanyname()) &&
                        price1.getPriceorigin().equals(price2.getPriceorigin()) &&
                        price1.getPricedest().equals(price2.getPricedest())) {
                    msg += "第" + (i + 2) + "行数据与第" + (j + 2) + "行数据冲突; </br>";
                }
            }
        }
        return msg;
    }
}